=============================================================================

                     ##          ##                 ###       ##         ##
                    ##   ##                        ## ##                 ##
    #####    #####       ##     ###   ##     ##    ## ##     ###     ######
        ##  ##   ##    ######    ##   ##     ##   ##   ##     ##    ##   ##
    ######  ##           ##      ##    ##   ##    #######     ##    ##   ##
   ##   ##  ##   ##      ##      ##     ## ##    ##     ##    ##    ##   ##
    ######   #####        ###  ######    ###     ##     ##  ######   ######
                                                                  ac'tivAid
   ________________________________________________________________________
   |  -=> Regeln zur Erstellung eigener Erweiterungen fr ac'tivAid! <=-  |
   
=============================================================================
Inhaltsverzeichnis

1. Einleitung
2. Die Grundregeln
3. Notwendige Variablen
   3.1. Sprachvariablen
4. Notwendige Unterroutinen
   4.1. Wichtige Unterroutinen/Funktionen von ac'tivAid
5. Funktionen von ac'tivAid zur Verwendung in Erweiterung
   5.1. Untersttzung von mehreren Bildschirmen
6. Anhang
   6.1. Vergeben Prfixe
   6.2. Vergebene GUI-Nummern
   6.3. Von ac'tivAid verwendete Variablen
   6.4. Dateien und Verzeichnisse
_____________________________________________________________________________
 1. Einleitung

Ac'tivAid kann man als Framework fr kleine ac'tivAid-Skripte bezeichnen. Es
bietet eine einheitliche Oberflche wo man diese kleinen, Erweiterungen
genannten, Skripte installieren, deinstallieren und vor allem auch
konfigurieren kann. Hier soll fr den Skriptentwickler erlutert werden, wie
er eigene Skripte in ac'tivAid integrieren kann. Damit sich ein Skript bzw.
eine Erweiterung auch mit ac'tivAid und anderen Erweiterungen vertrgt, muss
es einige Grundregeln einhalten. Um den Einstieg zu erleichtern gibt es im
Verzeichnis "development" die Vorlagedatei "template.ahk". Diese sollte man
duplizieren und ins Verzeichnis "extensions" kopieren, wenn man eine neue
Erweiterung erstellen mchte. Will man eine mitgelieferte Erweiterung
anpassen, sollte sie ebenfalls dupliziert und die Datei umbenannt werden,
damit beim nchsten Update nicht alle nderungen wieder verloren gehen.

Zum besseren Verstndnis ist es auch immer sehr hilfreich, sich vorhandene
Erweiterungen anzuschauen. Besonders geeignet ist hierzu die Erweiterung
NewFolder, da sie recht einfach ist und ausfhrlicher kommentiert.
_____________________________________________________________________________
 2. Die Grundregeln

Regel 1 - Erweiterungen mssen im Verzeichnis "extensions" als AHK-Datei
          angelegt werden

Regel 2 - Variablen, Unterroutinen und Funktionen mssen ein eindeutiges
          Prfix vorangestellt bekommen, wie z.B. "nf_main_NewFolder". Das
          Prfix ist in diesem Fall "nf_". Wird das nicht eingehalten, kann
          es zu Konflikten mit ac'tivAid kommen, falls die Variable schon
          dort verwendet wird. Im Anhang gibt es eine Auflistung aller
          bereits verwendeten Prfixe.

Regel 3 - Eine Erweiterung muss einen eindeutigen Namen ohne Leer- und
          Sonderzeichen bekommen, nur _ ist erlaubt. Dieser Name wird nmlich
          auch fr die vorgeschriebenen Unterroutinen und in der Ini-Datei
          als Sektion verwendet, wo eben keine Sonderzeichen erlaubt sind.
          Zu besseren Lesbarkeit kann man allerdings mit den Namen mit
          Grobuchstaben gliedern. Bei der spteren Verwendung ist die Gro-/
          Kleinschreibung allerdings irrelevant.

Regel 4 - Erweiterungen mit eigenen Dialogen mssen diese mit einer eigenen
          GUI-Nummer versehen. Das erreicht man z.B. mit "Gui, 23:Add, Text"
          oder indem man "Gui, 23:Default" vor die GUI-Befehle setzt.
          Im letzten Fall ist darauf zu achten, dass es fr jeden Thread wie
          z.B. Unterroutinen von Schaltflche erneut angegeben werden muss.
          Alle verwendeten GUI-Nummern sind im Anhang weiter unten
          aufgelistet.
_____________________________________________________________________________
 3. Notwendige Variablen

Ac'tivAid setzt einige Variablen voraus, die unbedingt von einer Erweiterung
bei der Initialisierung gesetzt werden mssen. In der folgenden bersicht
steht PRE fr Prfix der Erweiterung und NDE fr Name der Erweiterung. Diese
Abkrzungen sind natrlich durch die entsprechenden Vorgaben der Erweiterung
zu ersetzen.

Prefix                  Hier muss das Prfix der Erweiterung angegeben werden

%Prefix%_ScriptName     Der Name der Erweiterung ohne Leerzeichen und
                        Sonderzeichen. (_ ist erlaubt)

%Prefix%_ScriptVersion  Die Versionsnummer der Erweiterung

RequireExtensions       Wenn eine Erweiterung von einer anderen Erweiterung
                        abhngig ist, diese also installiert sein muss,
                        knnen hier deren Namen aufgefhrt werden. Damit
                        verweigert die Erweiterungs-Verwaltung die
                        Installation, wenn die erforderlichen Erweiterungen
                        nicht installiert sind.

AddSettings_NDE         Wenn eine Erweiterung es ermglicht, dass
                        Einstellungen nicht nur importiert, sondern auch
                        hinzugefgt werden knnen, muss diese Variable den
                        Wert 1 haben. Dadurch wird das 'Pfeil'-Men unten
                        links um einen Eintrag erweitert.

ConfigFile_NDE          Werden Einstellungen in einer separaten Datei
                        gespeichert, muss der relative Pfad dorthin hier
                        angegeben werden. Diese Variable wird nur bentigt
                        wenn AddSettings_NDE den Wert 1 hat.

CustomHotkey_NDE        Mit dem Wert 1 wird ac'tivAid dazu gebracht, dass
                        es automatisch der Erweiterung ein Tastaturkrzel
                        zur Verfgung stellt und entsprechend die
                        Konfigurations-Seite um eine Schaltflche zur Abfrage
                        diese Krzels ergnzt.

Hotkey_NDE              Wurde noch keine Tastaturkrzel definiert, wird das
                        hier angegeben als Standard-Krzel verwendet

HotkeyPrefix_NDE        Bei einigen Erweiterungen mag es sinnvoll sein, dass
                        deren Krzel immer ein Steuerzeichen vorangestellt
                        bekommen. So knnte man durch ~ festlegen, dass
                        Krzel nicht abgefangen, sondern auch an die aktive
                        Anwendung weitergeleitet werden.

HideSettings            Wenn ein Erweiterung nicht konfigurierbar sein soll
                        muss hier der Wert 1 eingetragen werden. Dadurch
                        verschwindet die entsprechende Seite im
                        Konfigurations-Dialog

MenuName                Der Name des Meneintrags im Tray-Men

Description             Kurze Beschreibung fr, welche in der Erweiterungs-
                        Verwaltung angezeigt wird.

EnableTray_NDE          Soll eine Erweiterung nicht im Tray-Men aufgefhrt
                        werden, muss der Wert 0 betragen

DisableIfCompiled_NDE   Ist es wie bei HotStrings nicht mglich, dass man
                        eine Erweiterung in kompilierter Form deaktivieren
                        oder aktivieren kann, muss der Wert 1 betragen.
                        Damit verschwindet die Erweiterung automatisch aus
                        dem Tray-Men und lsst sich auch ber den
                        Konfigurationsdialog nicht mehr umschalten.

SettingsDir             Enthlt den Pfad zum settings-Verzeichnis

A_AutoHotkeyPath	Pfad von AutoHotkey (ohne AutoHotkey.exe)

_____________________________________________________________________________
 3.1. Sprachvariablen

Die Template-Datei ist schon so vorbereitet, dass man seine Erweiterung
zweisprachig anlegen kann. Standardmig wird in ac'tivAid neben Deutsch
Englisch als alternative Sprache verwendet. Mann sollte also bei allen
GUI-Elementen, Meldungen und Mens auf Variablen zurckgreifen, statt direkt
die Text anzugeben. Es empfiehlt sich dabei das Format lng_PRE_StringName, um
Verwechslungen mit andern Variablen zu vermeiden.

Zudem gibt es noch spezielle ToolTip-Variablen wie bei HotStrings zu sehen.
Sie haben das feste Format tooltip_NAMEDESGUIELEMETS. Steht die Maus ber
ein GUI-Element, welches eine ToolTip-Variable hat, wird nach 1000 ms der
ToolTip angezeigt.

_____________________________________________________________________________
 4. Notwendige Unterroutinen

Damit ac'tivAid die Erweiterung steuern kann, mssen einige vorgegebene
Unterroutinen existieren. Sie haben einen festen Namensteil und einen
variablen Teil (NDE), der durch den Namen der Erweiterung zu ersetzen ist.

init_NDE                Diese Routine wird direkt beim Laden von ac'tivAid
                        ausgefhrt und setzt alle notwendigen Variablen.
                        Hier mssen auch alle Einstellungen aus der
                        Ini-Datei eingelesen werden. Tastaturkrzel und
                        Timer drfen hier noch nicht aktiviert werden.

SettingsGui_NDE         Wenn ac'tivAid den Konfigurations-Dialog aufbaut
                        wird diese Funktion aufgerufen. Hier werden alle
                        Elemente der Konfigurationsseite der Erweiterung
                        definiert. Das erste Element sollte die Position
                        "XS+10 Y+5" haben. Die Option "Section" ist hier
                        in keinem Element erlaubt. Zudem muss jedes
                        bearbeitbare Element die Unterroutine
                        "sub_CheckIfSettingsChanged" aufrufen, damit
                        ac'tivAid Vernderungen an den Einstellungen
                        feststellen kann und somit bei einer Besttigung
                        die Speicherung einleitet.

SaveSettings_NDE        Wird aufgerufen, wenn der Konfigurations-Dialog mit
                        Ok oder bernehmen besttigt wird. Hier mssen alle
                        Einstellungen und Tastaturkrzel in die Ini-Datei
                        geschrieben werden. Ist danach ein Neustart von
                        ac'tivAid notwendig, kann noch die Variable Reload
                        auf 1 gesetzt werden.

AddSetting_NDE          Die Unterroutine ist nur notwendig, wenn die
                        gleichnamige Variable den Wert 1 hat. Sie wird
                        aufgerufen, wenn Einstellungen zu den aktuellen
                        ber das 'Pfeil'-Men hinzugefgt werden.

CancelSettings_NDE      In seltenen Fllen ist es notwendig Werte zurck-
                        zusetzen wenn der Konfigurations-Dialog abgebrochen
                        wird. Das geschieht dann in dieser Routine.

DoEnable_NDE            Wird beim Starten von ac'tivAid aufgerufen, wenn die
                        Erweiterung aktiv ist (Enable_NDE = 1). Wird zudem
                        beim manuellen reaktivieren einer Erweiterung
                        aufgerufen. Hier werden Tastaturkrzel und Timer
                        aktiviert.

DoDisable_NDE           Analog zu DoEnable wird diese Routine aufgerufen,
                        wenn eine Erweiterung manuell deaktiviert wird.
                        Hier werden Tastaturkrzel und Timer ausgeschaltet.

DefaultSettings_NDE     Normalerweise stehen hier keine Befehle, da ac'tivAid
                        selbst dafr sorgt, dass beim Rckstellen der
                        Einstellungen diese aus der Ini-Datei gelscht
                        werden. In einigen Fllen kann es aber sinnvoll sein
                        beim Rckstellen auf die Standardwerte noch eine
                        Aktion auszufhren.

OnExitAndReload_NDE     Unter gewissen Umstnden kann es notwendig sein,
                        dass eine Erweiterung beim Beenden oder neu Laden
                        von ac'tivAid eine Unterroutine ausfhren muss.
                        So setzt FreeSpace beispielsweise die vernderten
                        Fenstertitel zurck.

_____________________________________________________________________________
 4.1. Wichtige Unterroutinen/Funktionen von ac'tivAid

sub_CheckIfSettingsChanged
-----------------------------------------------------------------------------
Jedes GUI-Element welches eine Einstellung reprsentiert, sollte mittels
eines g-Labels auf diese Unterroutine verweisen. Sie ermittelt automatisch,
ob sich Einstellungen seit dem Aufruf des Konfigurationsdialogs gendert
haben. Wichtig ist, dass das GUI-Element mit 'v' einen eigenen Namen hat.
Sollte fr ein Element eine eigene Unterroutine ntig sein, kann man
sub_CheckIfSettingsChanged auch in der Unterroutine aufrufen. Bei komplexeren
Konfigurationsmasken wie sie z.B. WebSearch, HotStrings oder UserHotkeys
haben, funktioniert das nicht, da GUI-Elemente nicht fr eine einzige
Einstellung stehen, sondern dynamische Werte haben. Fr diesen Fall ist die
Funktion func_SettingsChanged gedacht.

func_SettingsChanged( "Name der Erweiterung" )
-----------------------------------------------------------------------------
Wird diese Funktion mit dem Namen der Erweiterung als Parameter aufgerufen,
wei der Konfigurationsdialog, dass sich Einstellungen fr diese Erweiterung
gendert haben. Bei alle Erweiterungen, die als nicht 'verndert' gelten,
werden dann keine Speicherroutinen (SaveSettings_NDE) aufgerufen.

_____________________________________________________________________________
 5. Funktionen von ac'tivAid zur Verwendung in Erweiterungen

Ac'tivAid bietet einige Funktionen, um schnell eine leicht konfigurierbare
Erweiterung zu erstellen. Wichtig ist zu wissen, dass Variablen und Parameter
bei Funktionen anders angegeben werden. Texte werden in Anfhrungszeichen
gesetzt und Variablen nicht in %-Zeichen. Gibt man Variablen mit %-Zeichen
an, wird der Inhalt der Variable Bestandteil des eigentlich Variablennamens.
Das ist Praktisch um z.B. Arrays zu verwenden,
z.B. Function( Array%A_Index% )

func_HotkeyAddGuiControl( Text, "Variable", "Optionen", ["Single"] )
-----------------------------------------------------------------------------
Hiermit wird eine Schaltflche zur Abfrage eines Tastaturkrzels in die
Konfiguration einer Erweiterung eingefgt. Text steht dabei fr den Text, der
vor der Schaltflche platziert wird. Im Normalfall gibt man hier also eine
Sprachvariable (ohne %) an, welche den Text enthlt. Bei "Variable" gibt man
einen Variablennamen als String an, worin das Krzel gespeichert wird (intern
wird noch das Prfix Hotkey_ vorangestellt). Unter "Optionen" gibt man die
normalen GUI-Element-Optionen wie z.B. "xs+10 y+10 w160" an. Sie beziehen
sich dabei auf den Text vor der 300 Pixel breiten Schaltflche. Um die
Schaltflche z.B. schmaler zu machen, muss man Text mit "" leer lassen, womit
sich dann die Optionen auf die Schaltflche selber beziehen. Optional gibt es
noch den Parameter "Single". Ist er gesetzt, wird nur ein Taste abgefragt ohne
Shift, Strg, Alt und Windows.

func_HotkeyRead( "Variable", Dateiname, Sektion, "Schlssel",
                 "Unterroutine", "Krzel", "Prfix" )
-----------------------------------------------------------------------------
Diese Funktion sollte nur in der init-Routine einer Erweiterung aufgerufen
werden und sorgt dafr, dass das Tastaturkrzel aus der Ini-Datei eingelesen
wird und einer Unterroutine zugeordnet wird. "Variable" gibt den
Variablennamen (als String!) an, worin das Krzel gespeichert wird.
"Dateiname" lautet im Normalfall ConfigFile (ohne % und ") und "Sektion"
nf_ScriptName. Mit "Schlssel" ist der Name gemeint, worunter das Krzel in
der Ini-Datei zu finden ist. Die Routine, welche mit dem Krzel aufgerufen
wird, gibt man unter "Unterroutine" an. Steht nichts in der Ini-Datei wird
das unter "Krzel" angegeben Tastaturkrzel als Standardwert zugewiesen. Bei
"Prfix" kann man Steuerzeichen wie ~ vor das Krzel setzen lassen, was in
diesem Fall bedeutet, dass die Krzel nicht abgefangen, sondern
durchgeschleift werden.

func_HotkeyWrite( "Variable", "Dateiname", "Sektion", "Schlssel" )
-----------------------------------------------------------------------------
Analog zu func_HotkeyRead schreibt diese Funktion ein Tastaturkrzel wieder
in die Ini-Datei.

func_HotkeyEnable( "Variable" )
func_HotkeyDisable( "Variable" )
-----------------------------------------------------------------------------
Diese beiden Funktionen dienen dazu, ein Tastaturkrzel zu aktivieren, oder
zu deaktivieren.

func_HotkeyGetVar( "HotkeyArray", "Anzahl", "GetArray" )
-----------------------------------------------------------------------------
Wenn in einer Erweiterung mehrere Tastaturkrzel in einem Array abgelegt
wurden ist es mit func_HotkeyGetVar recht einfach, ein zum Tastaturkrzel
(HotkeyArray) passenden Wert aus einem anderen Array (GetArray) auszulesen.
So hat z.B. die Erweiterung Eject ein zwei Arrays mit 11 Elementen. Im Array
ej_Hotkey liegen die Tastaturkrzel und im Array ej_Drive sind die
entsprechenden Laufwerksbuchstaben abgelegt. Da jedem der 11 Hotkeys die
gleiche Unterroutine zugewiesen ist, braucht es nur eine Zeile, um zu
ermitteln, welches Laufwerk zum gedrckten Tastaturkrzel gehrt:
ej_Drive := func_HotkeyGetVar( "ej_Hotkey",11,"ej_Drive" )

func_HotkeyDecompose( "Tastaturkrzel", Kurze Darstellung )
-----------------------------------------------------------------------------
Tastaturkrzel werden von AutoHotkey mit einer rechte eigenwilligen Syntax
definiert, welche sich einem einfachen Anwender nicht auf Anhieb erschliet.
Mit dieser Funktion wird ein Tastaturkrzel im Klartext zurckgegeben. Ist
"Kurze Darstellung" auf 1 gesetzt, ist der zurckgegebene Name etwas krzer,
also ohne Leerzeichen und einigen krzeren Tastenamen.

func_ChangeDir( "Pfad", Neues Fenster, Verzeichnisbaum )
-----------------------------------------------------------------------------
Mit dieser Funktion kann man seine eigenen Erweiterungen leicht mit einem
Verzeichniswechsel ausrsten. Der Wechsel geschieht wenn mglich im gerade
aktiven Fenster. Ist der Wechsel nicht mglich, passiert nichts. Soll der
Wechsel dann alternativ ein neues Fenster ffnen, ist "Neues Fenster" auf -1
zu setzen. Hat es den Wert 1 wird generell ein neues Explorer-Fenster
geffnet. Setzt man "Verzeichnisbaum" auf 1, werden neue Explorer-Fenster mit
Verzeichnisbaum geffnet.

func_GetDir( Fenster-ID )
-----------------------------------------------------------------------------
Versucht das aktuelle Verzeichnis eines Fensters (Explorer) zu ermitteln.
Kann es nicht ermittelt werden ist der Rckgabewert leer.

func_AddMessage( "ID", "Unterroutine" )
-----------------------------------------------------------------------------
Damit mehrere Erweiterungen die AutoHotkey-Funktion OnMessage( mit der
gleichen Message-ID verwenden knnen, muss eine Umweg ber func_AddMessage(
gemacht werden. Populres Beispiel dafr ist die Message WM_KEYDOWN, welche
immer gesendet wird, wenn eine Taste gedrckt wurde. Diese lsst sich dafr
verwenden, um Fenstern eigene Tastaturkrzel zu geben, wie das z.B. bei
QuickNote mit func_AddMessage(0x100, "qn_OnMessage_EditKeys") gemacht wurde.
Bei jedem Tastendruck wird die Unterroutine qn_OnMessage_EditKeys aufgerufen.
Dabei werden die von OnMessage( bekannten Parameter in den Variablen
%#wParam%, %#lParam%, %#msg% und %#hwnd% abgelegt. Bei WM_KEYDOWN enthlt
#wParam beispielsweise den Wert der gedrckten Taste.

func_RemoveMessage( "ID", "Unterroutine" )
-----------------------------------------------------------------------------
Analog zu func_AddMessage( wird mit dieser Funktion eine Unterroutine wieder
aus dem OnMessage(-Array ausgetragen. Diese Funktion sollte aufgerufen
werden, wenn ein GUI geschlossen wird.

func_StrTranslate( "String", "Von", "Nach" )
-----------------------------------------------------------------------------
Hiermit lasen sich Zeichen in einem String durch andere Zeichen ersetzen.
func_StrTranslate( "abcdef", "ad", "14" ) ergibt z.B. "1bc4ef".

func_StrLeft( "String", Anzahl der Zeichen )
-----------------------------------------------------------------------------
Diese Funktion ist quivalent zu dem Befehl StringLeft, kann aber direkt
in If-Abfragen verwendet werden.

func_StrLower ( "String" )
-----------------------------------------------------------------------------
Diese Funktion ist quivalent zu dem Befehl StringLower, kann aber direkt
in If-Abfragen verwendet werden.

func_Hex ( Wert, Unicode )
-----------------------------------------------------------------------------
Wandelt einen String in Hex-Werte um, womit sich daraus z.B. Arrays bilden
lassen, wo ja nicht alle Zeichen erlaubt sind.

func_BeautifyIniFile( "Ini-Datei" )
-----------------------------------------------------------------------------
Hbscht eine angegebene Ini-Datei mit gleichmigen Einrckungen auf.
Kommentare gehen dabei allerdings verloren.

func_Download( "URL", "Ziel-Datei", "Hinweis", "Titel", Gre )
-----------------------------------------------------------------------------
Ldt eine Datei von einer "URL" zu einer "Ziel-Datei" und zeigt dabei einen
Statusbalken (Gre angegeben) oder die heruntergeladene Datenmenge an.

BalloonTip("Titel", "Text", "Symbol", OnlyOnce, AlwaysMessageBox, TimeOut)
-----------------------------------------------------------------------------
Zeigte eine Sprechblase am Tray-Symbol von ac'tivAid oder, falls im
Sprechblasen im System deaktiviert sind, ein normales Hinweis-Fenster.
"Symbol" kann weggelassen werden oder den Wert "Info", "Warning" und "Error"
enthalten. Das bestimmt, welches Symbol in der Sprechblase zu sehen ist.
Mit OnlyOnce=1 wird ein ToolTip nur einmal angezeigt und danach bis zum
Neustart von ac'tivAid nicht mehr.
Sind Sprechblasen im System nicht erlaubt, werden automatisch Hinweisfenster
angezeigt. Mit AlwaysMessageBox=1 wird immer ein Hinweisfenster eingeblendet.
Mit TimeOut kann man angeben nach wievielen Sekunden die Sprechblase oder
das Hinweisfenster verschwinden soll. Fehlt TimeOut bleiben Sprechblasen
wie vom System vorgegeben stehen und Hinweisfenster mssen besttigt werden.

func_GetMonitorNumber("Modus")
-----------------------------------------------------------------------------
Diese Funktion ermittelt auf welchem Monitor sich die Maus (Modus = "Mouse")
oder das gerade aktive Fenster (Modus = "ActiveWindow") befindet. Ist ein
Fenster auf mehreren Monitoren zu sehen, wird die Nummer des Monitors
zurckgegeben wo der grte Teil des Fenster zu sehen ist.

func_WildcardMatch("Heuhaufen", "Nadel", Gro/Klein)
-----------------------------------------------------------------------------
Fhrt einen String-Vergleich mit Wildcards (*) durch. Wird Gro/Klein auf 1
gesetzt wird zudem die Gro-/Kleinschreibung bercksichtigt. Es sind nur
*-Wildcards mglich, keine ?-Wildcards.

_____________________________________________________________________________
 5.1. Untersttzung von mehreren Bildschirmen

Ac'tivAid stellt einige Variablen und Funktionen zur Verfgung um einfacher
mit mehreren Bildschirmen zurecht zu kommen.

Variablen:
-----------------------------------------------------------------------------
NumOfMonitors                   Anzahl der erkannten Monitore

WorkAreaLeft                    Mae der gesamten Arbeitsflche
WorkAreaRight                   (Alle Monitor eingerechnet)
WorkAreaTop
WorkAreaBottom
WorkAreaWidth
WorkAreaHeight

WorkArea#Left                   Mae der Arbeitsflche von einem Monitor
WorkArea#Right                  (# = Nummer des Monitors)
WorkArea#Top
WorkArea#Bottom
WorkArea#Width
WorkArea#Height

Monitor#Left                    Mae eines gesamten Monitors
Monitor#Right                   (einschl. Taskleiste, # = Nummer des Monitors)
Monitor#Top
Monitor#Bottom
Monitor#Width
Monitor#Height

Funktionen:
-----------------------------------------------------------------------------
func_GetMonitorNumber("Modus")  Diese Funktion ermittelt auf welchem Monitor
                                sich die Maus (Modus = "Mouse") oder das
                                gerade aktive Fenster (Modus = "ActiveWindow")
                                befindet. Ist ein Fenster auf mehreren
                                Monitoren zu sehen, wird die Nummer des
                                Monitors zurckgegeben wo der grte Teil
                                des Fenster zu sehen ist.

_____________________________________________________________________________
 6. Anhang

_____________________________________________________________________________
 6.1. Vergebene Prfixe

cd              ComfortDrag
mc              MouseClip
cl              CommandLine
ej              Eject
fp              FilePaste
fs              FreeSpace
hs              HotStrings
ld              LikeDirkey
ldm             LikeDirkeyMenu
mc              MusicControl
nf              NewFolder
qc              QuickChangeDir
qn              QuickNote
rr              ReadingRuler
rd              RecentDirs
ws              WebSearch
wom             WebSearchOnMButton
wc              WindowsControl
wb              WindowToBottom

_____________________________________________________________________________
 6.2. Vergebene GUI-Nummern

1               ac'tivAid Konfigurations-Dialog
2               ac'tivAid Hilfefenster zu Erweiterungen
3               UserHotkeys Krzel Bearbeiten
4               ac'tivAids Tastaturkrzel-bersicht
5		ac'tivAids manuelles Update
6               WebSearch Browser auswhlen/Zentriertes Fenster
7               WebSearch-Dialog
8               QuickChangeDir Suchen-Dialog
9               QuickChangeDir Ergebnisfenster
10		QuickChangeDir-Planer
17              QuickNote
18		QuickNote
75              Eject
77              MusicControl

_____________________________________________________________________________
 6.3. Von ac'tivAid verwendete Variablen

Hier eine Liste der wichtigsten Variablen. Um sie in Funktionen verwenden zu
knnen, mssen sie mit dem Befehl global in der Funktion als global angegeben
werden.

- Folgende globale Variablen stehen zur Verfgung:
  ScriptName        - Name von ac'tivAid ohne Sonderzeichen
                      (activAid, z.B. fr die INI-Sektion)
  ScriptNameFull    - Name von ac'tivAid mit Sonderzeichen (ac'tivAid)
  ScriptVersion     - Version von ac'tivAid
  ScriptTitle       - Fenstertitel mit Versionsnummer fr Dialoge
  ConfigFile        - Name und Pfad zur INI-Datei
  Debug             - 1 = Debug-Modus ber die Ini-Datei aktiviert
  Devel             - 1 = Entwickler-Modus aktiviert

  Extension[x]               - Array mit den Namen aller installierten
                               Erweiterungen
  ExtensionPrefix[x]         - Prfix der Erweiterung Nr. x
  ExtensionMenuName[x]       - Tray-Men-Name der Erweiterung Nr. x
  ExtensionHideSettings[x]   -  %HideSettings%
  Extension[Name]            - Nr. der Erweiterung mit dem Namen 'Name'
  ExtensionDescription[Name] - Beschreibung der Erweiterung 'Name'
  ExtensionVersion[Name]     - Version der Erweiterung 'Name'

- Sprachabhngige Variablen:
  lng_exit          = Beenden
  lng_Left          = linke
  lng_Right         = rechte
  lng_MouseButton   = Maustaste
  lng_Win           = Windows-Taste
  lng_Alt           = Alt-Taste
  lng_Shift         = Shift-Taste
  lng_Ctrl          = Strg-Taste
  lng_ScriptReload  = %ScriptName% aktualisiert.
  lng_Readme        = Informationen
  lng_Changelog     = nderungen
  lng_Browse        = &Durchsuchen ...
  lng_cancel        = Abbrechen
  lng_OK            = OK
  lng_Apply         = bernehmen

  weitere stehen natrlich auch in ac'tivAid.ahk, welche jeder Erweiterung
  zur Verfgung stehen.

_____________________________________________________________________________
 6.4. Dateien und Verzeichnisse

ac'tivAid.ahk                           Das Hauptskript  die Schaltzentrale
ac'tivAid LiesMich.txt                  Informationen und Hilfe zu den Erw.
ac'tivAid Changelog.txt                 Versions-Historie

settings                                Verzeichnis fr die Einstellungen
   ac'tivAid.ini                        Einstell. ac'tivAid und Erweiterungen
   HotStrings.ini                       Alle Hotstrings
   QuickNote.txt                        Beispielnotiz fr Quicknote
   ac'tivAid.ico                        32x32-Icon fr Konfigurationsdialog
   ac'tivAid_on.ico                     16x16-Icon fr den Aktiv-Status
   ac'tivAid_off.ico                    16x16-Icon fr den Inaktiv-Status
   WebSearch                            Unterverzeichnis fr WebSearch-Icons
   QuickChangeDir                       Unterverzeichnis fr die QCD-Indexe

development                             Unterverzeichnis fr Entwickler
   Eigene Erweiterungen.txt             Diese Datei mit Hinweisen fr Entwi.
   Template.ahk                         Vorlagen-Datei fr eigene Erw.
   Language-File Creator.ahk            Hilfsskript fr die language.ini

extensions                              Unterverzeichnis mit den Erweiterungen
   _header.ahk                          wird automatisch erstellt/verwaltet
   _main.ahk                            wird automatisch erstellt/verwaltet
   ac'tivAid_WindowsControl.ahk         Erweiterung: WindowsControl
   ac'tivAid_WindowToBottom.ahk         Erweiterung: WindowToBottom
   ac'tivAid_CommandLine.ahk            Erweiterung: CommandLine
   ac'tivAid_Eject.ahk                  Erweiterung: Eject
   ac'tivAid_Eject_eject.gif                OSD-Symbol fr Eject
   ac'tivAid_FilePaste.ahk              Erweiterung: FilePaste
   ac'tivAid_FreeSpace.ahk              Erweiterung: FreeSpace
   ac'tivAid_HotStrings.ahk             Erweiterung: HotStrings
   ac'tivAid_LikeDirkey.ahk             Erweiterung: LikeDirkey
   ac'tivAid_LikeDirkey-Menu.ahk        Erweiterung: LikeDirkeyMenu
   ac'tivAid_MusicControl.ahk           Erweiterung: MusicControl
   ac'tivAid_MusicControl_vol2.gif          OSD-Symbol fr MusicControl
   ac'tivAid_MusicControl_vol.gif           OSD-Symbol fr MusicControl
   ac'tivAid_MusicControl_vol.wav           Tick-Sound fr MusicControl
   ac'tivAid_NewFolder.ahk              Erweiterung: Newfolder
   ac'tivAid_QuickChangeDir.ahk         Erweiterung: QuickChangeDir
   ac'tivAid_QuickChangeDir Indexer.ahk      Indexierungsskript fr QCD
   ac'tivAid_QuickNote.ahk              Erweiterung: QuickNote
   ac'tivAid_ReadingRuler.ahk           Erweiterung: ReadingRuler
   ac'tivAid_RecentDirs.ahk             Erweiterung: RecentDirs
   ac'tivAid_WebSearch.ahk              Erweiterung: WebSearch
   ac'tivAid_WebSearch on MButton.ahk   Erweiterung: WebSearchOnMButton
   ac'tivAid_UserHotkeys.ahk            Erweiterung: UserHotkeys

   UserHotkeys-scripts                  Beispielskripte fr UserHotkeys
      320MPH New.ahk                    320 MPH von Rajat
      320MPH Old.ahk                    320 MPH von Rajat, simple Version
